import tensorflow as tf

depth = 128
batch_size = 32
# Default hyperparameters:
hparams = tf.contrib.training.HParams(
    # Comma-separated list of cleaners to run on text prior to training and eval. For non-English
    # text, you may want to use "basic_cleaners" or "transliteration_cleaners" See TRAINING_DATA.md.
    cleaners='chinese_cleaners',  # 'english_cleaners',

    # Audio:
    num_mels=80,
    num_freq=1025,
    sample_rate=20000,  # 20000,
    frame_length_ms=50,
    frame_shift_ms=12.5,
    preemphasis=0.97,
    min_level_db=-100,
    ref_level_db=20,

    # Model:
    outputs_per_step=5,
    embed_depth=depth,  # 256,
    prenet_depths=[depth, depth // 2],  # [256, 128],
    encoder_depth=depth,  # 256,
    postnet_depth=depth,  # 256,
    attention_depth=depth,  # 256,
    decoder_depth=depth,  # 256,

    # Training:
    batch_size=batch_size,  # 32,
    adam_beta1=0.9,
    adam_beta2=0.999,
    initial_learning_rate=0.001,  # 0.002,
    decay_learning_rate=False,  # True
    use_cmudict=False,  # Use CMUDict during training to learn pronunciation of ARPAbet phonemes

    # Eval:
    max_iters=200,  # 200,
    griffin_lim_iters=30,  # 60,
    power=1.5,  # Power to raise magnitudes to prior to Griffin-Lim
)


def hparams_debug_string():
    values = hparams.values()
    hp = ['  %s: %s' % (name, values[name]) for name in sorted(values)]
    return 'Hyperparameters:\n' + '\n'.join(hp)
